home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / chseqr.z / chseqr
Text File  |  1996-03-14  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. CCCCHHHHSSSSEEEEQQQQRRRR((((3333FFFF))))                                                          CCCCHHHHSSSSEEEEQQQQRRRR((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CHSEQR - compute the eigenvalues of a complex upper Hessenberg matrix H,
  10.      and, optionally, the matrices T and Z from the Schur decomposition H = Z
  11.      T Z**H, where T is an upper triangular matrix (the Schur form), and Z is
  12.      the unitary matrix of Schur vectors
  13.  
  14. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  15.      SUBROUTINE CHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ, WORK,
  16.                         LWORK, INFO )
  17.  
  18.          CHARACTER      COMPZ, JOB
  19.  
  20.          INTEGER        IHI, ILO, INFO, LDH, LDZ, LWORK, N
  21.  
  22.          COMPLEX        H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * )
  23.  
  24. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  25.      CHSEQR computes the eigenvalues of a complex upper Hessenberg matrix H,
  26.      and, optionally, the matrices T and Z from the Schur decomposition H = Z
  27.      T Z**H, where T is an upper triangular matrix (the Schur form), and Z is
  28.      the unitary matrix of Schur vectors.
  29.  
  30.      Optionally Z may be postmultiplied into an input unitary matrix Q, so
  31.      that this routine can give the Schur factorization of a matrix A which
  32.      has been reduced to the Hessenberg form H by the unitary matrix Q:  A =
  33.      Q*H*Q**H = (QZ)*T*(QZ)**H.
  34.  
  35.  
  36. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  37.      JOB     (input) CHARACTER*1
  38.              = 'E': compute eigenvalues only;
  39.              = 'S': compute eigenvalues and the Schur form T.
  40.  
  41.      COMPZ   (input) CHARACTER*1
  42.              = 'N': no Schur vectors are computed;
  43.              = 'I': Z is initialized to the unit matrix and the matrix Z of
  44.              Schur vectors of H is returned; = 'V': Z must contain an unitary
  45.              matrix Q on entry, and the product Q*Z is returned.
  46.  
  47.      N       (input) INTEGER
  48.              The order of the matrix H.  N >= 0.
  49.  
  50.      ILO     (input) INTEGER
  51.              IHI     (input) INTEGER It is assumed that H is already upper
  52.              triangular in rows and columns 1:ILO-1 and IHI+1:N. ILO and IHI
  53.              are normally set by a previous call to CGEBAL, and then passed to
  54.              CGEHRD when the matrix output by CGEBAL is reduced to Hessenberg
  55.              form. Otherwise ILO and IHI should be set to 1 and N
  56.              respectively.  1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0,
  57.              if N=0.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCHHHHSSSSEEEEQQQQRRRR((((3333FFFF))))                                                          CCCCHHHHSSSSEEEEQQQQRRRR((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      H       (input/output) COMPLEX array, dimension (LDH,N)
  75.              On entry, the upper Hessenberg matrix H.  On exit, if JOB = 'S',
  76.              H contains the upper triangular matrix T from the Schur
  77.              decomposition (the Schur form). If JOB = 'E', the contents of H
  78.              are unspecified on exit.
  79.  
  80.      LDH     (input) INTEGER
  81.              The leading dimension of the array H. LDH >= max(1,N).
  82.  
  83.      W       (output) COMPLEX array, dimension (N)
  84.              The computed eigenvalues. If JOB = 'S', the eigenvalues are
  85.              stored in the same order as on the diagonal of the Schur form
  86.              returned in H, with W(i) = H(i,i).
  87.  
  88.      Z       (input/output) COMPLEX array, dimension (LDZ,N)
  89.              If COMPZ = 'N': Z is not referenced.
  90.              If COMPZ = 'I': on entry, Z need not be set, and on exit, Z
  91.              contains the unitary matrix Z of the Schur vectors of H.  If
  92.              COMPZ = 'V': on entry Z must contain an N-by-N matrix Q, which is
  93.              assumed to be equal to the unit matrix except for the submatrix
  94.              Z(ILO:IHI,ILO:IHI); on exit Z contains Q*Z.  Normally Q is the
  95.              unitary matrix generated by CUNGHR after the call to CGEHRD which
  96.              formed the Hessenberg matrix H.
  97.  
  98.      LDZ     (input) INTEGER
  99.              The leading dimension of the array Z.  LDZ >= max(1,N) if COMPZ =
  100.              'I' or 'V'; LDZ >= 1 otherwise.
  101.  
  102.      WORK    (workspace) COMPLEX array, dimension (N)
  103.  
  104.      LWORK   (input) INTEGER
  105.              This argument is currently redundant.
  106.  
  107.      INFO    (output) INTEGER
  108.              = 0:  successful exit
  109.              < 0:  if INFO = -i, the i-th argument had an illegal value
  110.              > 0:  if INFO = i, CHSEQR failed to compute all the eigenvalues
  111.              in a total of 30*(IHI-ILO+1) iterations; elements 1:ilo-1 and
  112.              i+1:n of W contain those eigenvalues which have been successfully
  113.              computed.
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.